package com.ruibo.modules.system.service.impl;

import com.ruibo.utils.PageUtil;
import com.ruibo.modules.system.domain.SysConfig;
import com.ruibo.modules.system.repository.SysConfigRepository;
import com.ruibo.modules.system.service.dto.SysConfigDto;
import com.ruibo.modules.system.service.mapper.SysConfigMapper;
import com.ruibo.modules.system.service.SysConfigService;
import org.springframework.stereotype.Service;
import org.springframework.data.domain.PageRequest;
import javax.annotation.Resource;
import java.util.List;

/**
 * (SysConfig)表服务实现类
 *
 * @author sunfeng
 * @since 2020-04-17 13:23:44
 */
@Service("sysConfigService")
public class SysConfigServiceImpl implements SysConfigService {
    @Resource
    private SysConfigRepository sysConfigRepository;

    @Resource
    private SysConfigMapper sysConfigMapper;


    @Override
    public SysConfigDto queryById(Long configId) {
        return this.sysConfigMapper.toDto(this.sysConfigRepository.getOne(configId));
    }

    @Override
    public List<SysConfigDto> findAll() {

        return this.sysConfigMapper.toDto(this.sysConfigRepository.findAll());

    }

     @Override
    public Object queryAllByLimit(int offset, int limit) {

      return PageUtil.toPage(this.sysConfigRepository.findAll(PageRequest.of((offset - 1)
                * limit, limit)).map(sysConfigMapper::toDto));

    }

    @Override
    public SysConfigDto insert(SysConfig sysConfig) {

            return this.sysConfigMapper.toDto(
            this.sysConfigRepository.save(sysConfig));


    }


    @Override
    public SysConfigDto update(SysConfig sysConfig) {

     return this.sysConfigMapper.toDto(
            this.sysConfigRepository.save(sysConfig));
    }


    @Override
    public boolean deleteById(Long configId) {

     try{
             this.sysConfigRepository.deleteById(configId) ;
        }catch (Exception ex){
            return false;
        }
        return true;

    }
}
